# pip3 install transformers
# python3 deepseek_tokenizer.py
import pprint

import transformers
# from deepseek_v3_tokenizer  import DeepSeekTokenizer
chat_tokenizer_dir = "./"


# deepseek_v3_tokenizer 是一个基于 BPE（Byte Pair Encoding）
# 或 WordPiece 的分词器，专为处理中英文混合文本设计，适用于预训练语言模型（如 DeepSeek-LLM）。其特点包括：
# 支持中文字符、英文单词、标点符号的混合分词。
# 对代码、数学公式等特殊场景优化。
# 通过词汇表（vocab）和合并规则（merges）控制分词粒度。

def printInfo():
        tokenizer = transformers.AutoTokenizer.from_pretrained(
                chat_tokenizer_dir, trust_remote_code=True
        )
        text = "DeepSeek是一个专注实现AGI的中国公司。"
        # 分词
        print("输出分词结果")
        tokens = tokenizer.tokenize(text);
        print(tokens)
        # 文本转token ids
        tokenIds = tokenizer.encode(text, add_special_tokens=False)
        print(tokenIds)
        # token ids 转文本
        originText = tokenizer.decode(tokenIds,skip_special_tokens=False)
        # 还原原始文本
        print("还原文本")
        print(originText)

        # 批量输出分词
        batchTexts = ["Deepseek是一个专业的AGI公司","大模型进行落地需要怎么样的实施路径"]
        batchTextsEncodes = tokenizer._batch_encode_plus(batchTexts)
        print("输出批量分词结果")
        print(batchTextsEncodes)

        # 批量还原文本
        originTexts = tokenizer.batch_decode(batchTextsEncodes)
        print("还原文本")
        print(originTexts)

if __name__=="__main__":
        try:
                printInfo()
        except Exception as e:
                print(e)
